home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / misc / sim120bn / demos.doc < prev    next >
Text File  |  1993-11-09  |  25KB  |  736 lines

  1.  
  2.     (c) Copyright 1992 Genashor Corp.  All Rights Reserved.
  3.  
  4.     This file describes the SIMIC demonstration files.  Some additional
  5.     information can be obtained by reading the "SIMIC Engineering Guide
  6.     for IC Design Verification" by Genashor Corp.
  7.  
  8.     Only a small percentage of SIMIC features are described in these
  9.     demonstrations.  The "SIMIC User's Guide" by Genashor Corp describes
  10.     SIMIC's range of capabilities.
  11.  
  12.     Each Demonstration consists of a network description, in a file with
  13.     extension .net.  Most Demonstrations also have a second file, with 
  14.     extension .run, which contains a number of SIMIC commands to 
  15.     automatically perform the simulation.  Each .run file contains
  16.     commentary to explain each step. 
  17.  
  18.     A simulation is run by issuing the command:
  19.  
  20.             simic <command_file>
  21.  
  22.     where <command_file> is the name of the "run" file for that
  23.     demonstration.  For example, if a demonstration consisting of two
  24.     files: example1.net and example1.run, exercise this demonstration 
  25.     with the command:
  26.  
  27.             simic example1
  28.  
  29.     Alternatively, the same operation can be accomplished by entering the
  30.     command:
  31.  
  32.             simic
  33.  
  34.     SIMIC will issue its prompt, ">>:", requesting interactive input. In 
  35.     response to this prompt, simply type the command:
  36.  
  37.             execute file=example1
  38.  
  39.  
  40.     SIMIC, by default, is case insensitive.  The demonstration files use
  41.     mixed case only to improve readability.  It is a good idea to make a
  42.     hardcopy of each file for viewing while running the demonstrations.
  43.  
  44.     Network Description Overview:
  45.  
  46.         a) Global Delay Table. Delay characteristics are specified 
  47.            in the !Delay section of the file.  Each delay relation 
  48.            is assigned a unique name, allowing multiple element
  49.            instances to share delay characteristics through symbolic
  50.            references.  Delay tables can be designed for different
  51.            operating conditions, and a specific table can chosen for
  52.            circuit compilation.  Typical tables might include pre-
  53.            and post- radiation hardening characteristics, or the 
  54.            effects of different supply voltages.  Delays can be 
  55.            specified as absolute values, or delay vs. loading curves.  
  56.            Delay vs. loading curves may be specified in intercept/slope
  57.            format or two point format (delays at two different loading
  58.            conditions).  SIMIC adds all loading on each signal (wiring
  59.            capacitance and capacitance at all driven load pins), and
  60.            extrapolates the delay for this total loading from the
  61.            referenced delay curve.  For any element, MINIMUM, TYPICAL
  62.            and MAXIMUM values may be specified, and then chosen
  63.            and/or scaled interactively.
  64.  
  65.         b) Annotation.  These include !Documentation section(s), which
  66.            allow clean addition of large amounts of text, and Comments,
  67.            beginning with the Comment keyword (C=), for single line 
  68.            commentary.  In addition, Remarks (R=) allow information to 
  69.            be conveyed to the user during circuit compilation (for
  70.            example, to warn the user about constraints on using a given
  71.            macro (TYPE)).
  72.  
  73.         c) Electrical Characteristics. Specifications such as drive
  74.            strength (ODrive) and loading (Ilod).  These and other
  75.            characteristics can be viewed in the listing (.lst) file
  76.            created by the circuit compiler.
  77.  
  78.         d) Network Topology. The circuit's netlist is specified in the
  79.            !Logical section of the file. SIMIC supports a general 
  80.            hierarchical network description language in which each 
  81.            macro (subcircuit) is defined by a TYPE statement, which 
  82.            specifies the macro's input, output, and bidirectional (bus)
  83.            ports (and optionally, their electrical characteristics), 
  84.            followed by PART statements, which specify the macro's 
  85.            internal elements and their interconnections. The internal
  86.            elements can either be SIMIC primitives or instances of 
  87.            other macros. 
  88.  
  89.     See the file snl.txt for descriptions of the topological constructs 
  90.     and the SIMIC primitives used in the demonstration testcases.
  91.  
  92.  
  93.     Testcase #1 - The Bus Hold Circuit. (bushold.net and bushold.run)
  94.  
  95.     Run Command Description:
  96.  
  97.         a) Define File=bushold
  98.  
  99.            This command specifies that all files will have the default
  100.            name "bushold".  Contents of files are distinguished by the
  101.            extension attached to this name.  For example, in this
  102.            demonstration, SIMIC will generate a "listing" file of the
  103.            compiled circuit, as no name for this file was specified,
  104.            the information will be placed in a file named "bushold.lst".
  105.  
  106.         b) Get Type=bushold Report=all
  107.  
  108.            The "Get" command is used to compile/retrieve circuit
  109.            descriptions, timing, and loading information.
  110.            "Type=bushold" specifies that SIMIC should compile the 
  111.            circuit named "bushold".  "Report=all" specifies that a 
  112.            "listing" file should be generated and all information 
  113.            should be included.  This listing file will contain a 
  114.            description of the flattened circuit and the electrical 
  115.                characteristics of each element.
  116.  
  117.         c) Define Wall.4 = 1000 @200 0000 @210 0011 @260 0001
  118.            Apply Patterns=Wall
  119.  
  120.            Creates and applies input stimulus to the circuit.
  121.            SIMIC has a very flexible input stimulus language.  It
  122.            allows hierarchical patterns to be described, containing
  123.            loops, absolute and relative positioning of patterns,
  124.            stimulus grouping, etc. "Define Wall.4" specifies the
  125.            creation of a 4-bit wide pattern sequence named Wall.  The
  126.            "W" in Wall specifies that the patterns are temporal (Each
  127.            pattern is positioned in time).  This form is the most
  128.            frequently used by other simulators, but is only one of
  129.            three forms (and typically the least used) in SIMIC.  In
  130.            this command, four input states (1000, 0000, 0011, and
  131.            0001) are described and  applied at times (0, 200, 210, and
  132.            260) respectively.  "Apply Patterns=Wall" attaches this
  133.            sequence to the primary inputs (EnA, DataA, EnB, DataB)
  134.            respectively (The order defined in the network description).
  135.  
  136.         d) Print List=EnA,DataA,EnB,DataB*Bus*E Change:
  137.            No Print Pstep:
  138.  
  139.            Specifies what, when and how to output signal information
  140.            during simulation.  The "Print" command is used to output
  141.            information to the terminal (stdout).  The "Write" command
  142.            is identical to "Print", except this command sends the 
  143.            output to a file, with default extension ".wrt".  Write 
  144.            and Print commands operate independently, and may coexist 
  145.            in the same simulation run.
  146.            "List=" indicates that a list of signals to output will
  147.            follow.  The asterisks (*) specify that a blank vertical
  148.            column should be inserted in order to make the output more
  149.            readable.  "Change:" indicates that SIMIC should output
  150.            whenever any one of the signals on the list changes state.
  151.            "No Print Pstep:" specifies that SIMIC should NOT output
  152.            each time the circuit stabilizes (all internal activity
  153.            ceases -- this is the default condition causing Print and
  154.            Write output).
  155.  
  156.            SIMIC uses a single-character representation for each of the
  157.            15 possible combinations of signal strength and value.
  158.            You may force SIMIC to display a four character
  159.            representation (0, 1, X, and Z), suppressing strength
  160.            information by adding the command:
  161.  
  162.             Print Values=Levels
  163.  
  164.            prior to the simulate command.
  165.  
  166.         e) No Warn Unstable:
  167.  
  168.            SIMIC will, by default, issue a warning message if the
  169.            circuit leaves fundamental mode of operation (the circuit
  170.            is still responding to an input change when a new input
  171.            change occurs).  Since loss of fundamental mode of operation
  172.            is not a problem for this  circuit, the warning message is
  173.            not meaningful here.
  174.  
  175.         f) Simulate
  176.  
  177.            This tells SIMIC to perform the simulation.
  178.  
  179.         g) Quit
  180.  
  181.            This ends the SIMIC session.
  182.  
  183.     Testcase #2 - Paralleled Devices. (parallel.net)
  184.  
  185.     This demonstrates SIMIC's ability to merge electrical characteristics
  186.     of simple combinatorial gates and switches.  In this circuit two
  187.     buffers are placed in parallel.  This demonstration will also walk
  188.     you through a totally interactive session in SIMIC.
  189.  
  190.         a) Enter SIMIC.
  191.  
  192.            Do this with the command:
  193.  
  194.             simic
  195.  
  196.            at your system's prompt.  The SIMIC session should begin
  197.            and SIMIC should issue the prompt:
  198.  
  199.             >>:
  200.  
  201.            indicating that SIMIC is requesting command input.
  202.  
  203.         b) Specify a default file name.  File names for SIMIC input
  204.            or output are then derived from this name, by default.
  205.            If not specified, the default name is "noname".  In this
  206.            example, use the name "parallel":
  207.  
  208.             define file=parallel
  209.  
  210.            If you mistyped this command, just reenter it with the
  211.            correct value to replace the mistyped one.
  212.  
  213.         c) Compile the circuit description.  We also would like a
  214.            file containing the flattened circuit description and its
  215.            simulation properties.  This is done with the command:
  216.  
  217.             get type=parallel report=all
  218.  
  219.            We could quit this session and look at the listing file,
  220.            parallel.lst, to see the resulting information.  We can
  221.            also interrogate the circuit properties of interest
  222.            interactively.  Examples are:
  223.  
  224.             ?delay list:
  225.  
  226.            which will display the rise and fall values for all signals
  227.            and:
  228.  
  229.             ?loading list:
  230.  
  231.            which will display the loading information for all signals.
  232.            You will note that the AND gate generating signal C has
  233.            larger delays than the equivalent ANDs that are paralleled
  234.            and generates signal B.
  235.  
  236.         d) Leave SIMIC session with the command:
  237.  
  238.             quit
  239.  
  240.     Testcase #3 - Dynamic Loading. (dynamic.net and dynamic.run)
  241.  
  242.     This demonstrates SIMIC's ability to adjust element delays (even those
  243.     undergoing a state transition) based on the current and dynamic loading
  244.     conditions provided by ideal switch elements.
  245.  
  246.     Run Command Descriptions:
  247.  
  248.         a) Define File=dynamic
  249.  
  250.            Specifies the default file name, as in the previous examples.
  251.  
  252.         b) Get Type=dynamic
  253.  
  254.            Requests SIMIC to compile the circuit description.
  255.  
  256.         c) Define pin.1= do 2 (0 1)
  257.            Define pen.1.2= 0 1
  258.            Apply Pattern=pin List=in
  259.            Apply Pattern=pen List=b
  260.  
  261.            Defines and applies stimulus values.  In this case the
  262.            stimuli are defined as simulate-until-stable patterns.
  263.            Each pattern is applied only when the circuit has finished
  264.            responding to the previous stimulus.  This method of
  265.            stimulus application:
  266.             1) Prevents leaving fundamental mode of operation,
  267.             2) allows identification of slow paths easily, and
  268.             3) makes available a number of sophisticated
  269.                troubleshooting techniques uniquely found in SIMIC.
  270.            "Define pin.1= do 2 (0 1)" defines a pattern sequence
  271.             called "pin" that will be applied to one signal.  In this
  272.             pattern the sequence (0 1) will be applied twice.
  273.             "Define pen.1.2= 0 1" defines a pattern sequence called
  274.             "pen" that will be applied to one signal and whose default
  275.             duration for each vector is two patterns.  The sequence
  276.             (0 1) will be applied.  Note that the default duration
  277.             specifies that the sequence will really be (0 0 1 1).
  278.             "Apply Pattern=pin List=in" attaches the sequence "pin"
  279.             to signal "in", and "Apply Pattern=pen List=b" attaches
  280.             the sequence "pen" to signal "b".
  281.  
  282.         d) Print List=in*b*a*out Change:
  283.  
  284.            Describes which signals to output, and when output should
  285.            occur.  In this case, We wish to display the values of the
  286.            signals in, b, a, out.  Again, the asterisk (*) indicates
  287.            that a blank vertical column is requested for readability,
  288.            and "Change:" indicates that we want output whenever any
  289.            signal on the list changes.
  290.  
  291.         e) Simulate
  292.  
  293.            Initiates simulation.
  294.  
  295.         f) Quit
  296.  
  297.            Ends the SIMIC session.
  298.  
  299.     Testcases #4 and #6 combined - Conflicts and Conflict resolution.
  300.  
  301.     This demonstrates SIMIC's ability to detect, and, if possible,
  302.     resolve conflicts on wire-ties.
  303.  
  304.     Run command description:
  305.  
  306.         a) Define File=conflict
  307.  
  308.            Defines the default file name.
  309.  
  310.         b) Get Type=Conflict
  311.  
  312.            Compiles the circuit called "Conflict".
  313.  
  314.         c) Define Pa.2= 10 X1
  315.            Define Pb.2= 11
  316.            Apply Pattern=Pa List=EnA,DataA
  317.            Apply Pattern=Pb List=EnB,DataB
  318.  
  319.            Defines and applies the stimulus to the input signals.
  320.            As before, the stimulus mode is simulate-until-stable 
  321.            patterns.  In pattern #1 part A is driving a logic-0, 
  322.            while part B is driving a logic-1, a "real" conflict 
  323.            situation.  During simulation, notice the explicit 
  324.            conflict message, indicating the condition, and the 
  325.            signals that are in conflict.  In Pattern #2 part A
  326.            is either driving a logic-1 or is tristating, due to the
  327.            unknown logic value on its enable.  Since part B is still
  328.            driving a logic-1, the "conflict" can be resolved as a
  329.            logic-1.
  330.  
  331.            
  332.         d) Print List=EnA,DataA*EnB,DataB*Bus*C
  333.  
  334.            Outputs the specified signals whenever the circuit becomes
  335.            stable.
  336.  
  337.         e) Simulate
  338.  
  339.            Initiate simulation.
  340.  
  341.         f) Quit
  342.  
  343.            End SIMIC session.
  344.  
  345.     Testcase #5 - Oscillations. (oscil.net and oscil.run)
  346.  
  347.     This demonstrates SIMIC's ability to trap an oscillation (Excess
  348.     activity on a signal for a given circuit input state), and squelch
  349.     it (by turning it into an X).  This easily uncovers Meta-stable
  350.     states in the circuit.
  351.  
  352.     Run Command Descriptions:
  353.  
  354.         a) Define file=oscil
  355.  
  356.            Defines a default filename.
  357.  
  358.         b) Get Type=oscil
  359.  
  360.            Compiles the circuit named oscil
  361.  
  362.         c) Define Pab.2= 00 11
  363.            Apply Pattern=Pab
  364.  
  365.            Defines a pattern sequence and applies it to the input
  366.            signals.  Again, we are using simulate-until-stable format.
  367.  
  368.         d) Print List=a,b*q,nq Change:
  369.  
  370.            Specifies to output the listed signals whenever their values
  371.            change.
  372.  
  373.         e) Simulate
  374.  
  375.            Do the simulation.
  376.  
  377.         f) Quit
  378.  
  379.            Leave SIMIC.
  380.  
  381.     Testcase #7 Timing Verification - (ftv.net and ftv.run)
  382.  
  383.     This testcase demonstrates SIMIC's unique capability to detect timing
  384.     violations functionally.
  385.  
  386.     Network Description Highlights:
  387.  
  388.         a) Timing hazard information.  Information describing timing
  389.            checks may be added to all SIMIC flip-flops and D-Latch
  390.            primitives.  These are contained within a timing-check
  391.            block (Timing-checks= begin; ... end;) Each timing check
  392.            may be described as an constant value, or as a load-
  393.            dependent value.  In addition, you can control whether a 
  394.            timing violation message is issued, or whether the flip-flop
  395.            state should be set to unknown (X), on a per instance/
  396.            per timing-check basis.  In this example, the pulse-width 
  397.            limit on the negative reset input is set at 20.
  398.  
  399.     Run Command Description:
  400.  
  401.         a) Define File=ftv
  402.  
  403.            Defines the default file name.
  404.  
  405.         b) Get Type=ftv
  406.  
  407.            Compile the circuit called ftv.
  408.  
  409.         c) ?Checks Part=q
  410.  
  411.            Have SIMIC list the timing-check limits and options set
  412.            for part Q.
  413.  
  414.         d) Define Pat.3=000 011
  415.            Apply Pattern=Pat
  416.            Define Period=1000
  417.            Define Tclock.RZ=250,750
  418.            Define Treset.RO=500,510
  419.            Define Tdata.NRZ=0
  420.            Apply Timing=Tclock List=c
  421.            Apply Timing=Treset List=nr
  422.            Apply Timing=Tdata List=d
  423.  
  424.            You should be familiar with the first two commands from
  425.            previous examples.  It seems exactly like the simulate-
  426.            until-stable format discussed previously.  However, in
  427.            this example, we will demonstrate the third method for
  428.            describing stimulus, Timing Generators.  This method
  429.            emulates modern Automatic Test Equipment (ATE).  Testers
  430.            require that a master clock period be define, and timing-
  431.            generators be assigned to inputs to produce waveforms 
  432.            relative to a master clock period.  In our example,
  433.            we describe the period with the "Define Period" command,
  434.            and each timing generator with the "Define T..." command.
  435.  
  436.            Define Period=1000
  437.  
  438.            Sets the master period to 1000 time-units.
  439.  
  440.            Define Tclock.RZ=250,750
  441.  
  442.            Defines a RZ (Return to Zero) timing generator.  If the
  443.            pattern is a 0, the waveform remains at a logic-0.
  444.            If the pattern is a 1, then the waveform goes high at
  445.            time 250 and then low again at time 750 (relative to the
  446.            start of the period).
  447.  
  448.            Define Treset.RO=500,510
  449.  
  450.            Defines a RO (Return to One) timing generator.  If the
  451.            pattern is a 1, the waveform remains at a logic-1.  If
  452.            the pattern is a 0, then the waveform goes low at time
  453.            500 and then high again at time 510 (relative to the
  454.            start of the period).
  455.  
  456.            Define Tdata.NRZ=0
  457.  
  458.            This defines an NRZ (Non-Return to Zero) timing
  459.            generator.  The waveform obtains the pattern's value at
  460.            time 0 (relative to the start of the period).  If no
  461.            timing generator is specified for an input, this is SIMIC's
  462.            default.
  463.  
  464.            SIMIC also allows description of Drive Envelopes (when an
  465.            input changes from drive to tristate and tristate to drive),
  466.            supports time-set switching (changing timing generators
  467.            on an input during simulation), and strobe definitions
  468.            (when to sense for an output or in/out value).
  469.  
  470.            In this demonstration, we could have used SIMIC's waveform
  471.            description to accomplish the same task.  The equivalent
  472.            waveform description for the timing generator waveforms
  473.            would be:
  474.  
  475.            Define Wdata.1.1000= 0 1
  476.            Define Wreset.1= 1 &500 do 2 (0 &10 1 &1000)
  477.            Define Wclock.1.500= 0 &250 do 2 (1 0)
  478.            Apply Pattern=Wdata List=d
  479.            Apply Pattern=Wreset List=nr
  480.            Apply Pattern=Wclock List=c
  481.  
  482.            Where the & indicates that the following integer represents
  483.            the duration for the previous pattern.  For example the
  484.            definition for Wreset reads:
  485.  
  486.            "Apply a logic-1 at time 0 and hold it for 500 time-units,
  487.            followed by the repetition of the following sequence twice:
  488.            Apply a logic-0 and hold it for 10 time-units followed by
  489.            a logic-1 held for 1000 time-units."
  490.  
  491.         e) Print List=nr,d,c*q Change:
  492.            No Print Pstep:
  493.  
  494.            Specifying to print the listed signals when any one of them
  495.            change, and do not output each time the circuit becomes
  496.            stable.
  497.  
  498.         f) Simulate
  499.  
  500.            Simulate the circuit.
  501.  
  502.         g) Restore Tnum=0
  503.  
  504.            This command returns the circuit to an uninitialized
  505.            (pre-simulation state).  We are doing this in order to
  506.            show what would happen if there were no functional
  507.            timing checks.
  508.  
  509.         h) No Warn Part=q Pw:
  510.  
  511.            Turn off the warnings for any pulse-width violation on
  512.            part Q.
  513.  
  514.         i) No Xpropagate Part=q Pw:
  515.  
  516.            Suppress setting the flip flop for a functional violation
  517.            on part Q.
  518.  
  519.         j) Simulate
  520.  
  521.            Simulate the circuit (again).
  522.  
  523.         k) Quit
  524.  
  525.            Leave the SIMIC session.
  526.  
  527.     Testcase #8 - Interactive Debugging (div7.net and div7.run).
  528.  
  529.     In this demonstration we provide an interactive debugging session
  530.     encapsulated in a run file.  This provides a demonstration of how
  531.     easily SIMIC can isolate problems in the circuit.
  532.  
  533.     Run Command Descriptions:
  534.  
  535.         a) Define File=div7
  536.  
  537.            Define the default name for files.
  538.  
  539.         b) Get type=divide_by_7
  540.  
  541.            Compile the circuit.
  542.  
  543.         c) Define Preset.1= 0 1
  544.            Define Pclock.1= 0 do 8 (1 0)
  545.            Apply Pattern=Preset List=reset
  546.            Apply Pattern=Pclock List=clock
  547.  
  548.            Define and apply the stimulus.  We used simulate-until-
  549.            stable patterns here.
  550.  
  551.         d) Define Vq.Posint=q4,q2,q1
  552.  
  553.            Group scalar signals q4, q2, and q1 into an array called
  554.            "Vq". When displaying this array, it will be done as a
  555.            positive integer (Posint).  Arrays can also be explicitly
  556.            defined in the network description.  SIMIC recognizes
  557.            arrays in all commands and acts on them collectively.
  558.            Other display formats include (binary, octal, hexadecimal,
  559.            1's complement, and 2's complement).
  560.  
  561.         e) Print List=clock,reset*q4,q2,q1*Vq
  562.  
  563.            Specify the simulation output.  Note here the use of our
  564.            defined array, Vq.
  565.  
  566.         f) No Xpropagate Spike:
  567.  
  568.            This option prohibits detected spikes from propagating as
  569.            a pulse of unknown value.  In effect, all spikes will be
  570.            filtered from the simulation.  This will demonstrate how
  571.            most other simulators would handle this circuit.
  572.  
  573.         g) Simulate
  574.  
  575.            Initiate simulation.  The things to notice in the simulation
  576.            results are:
  577.  
  578.             1) Our defined array, Vq.  The header indicates this
  579.                signal as *Q to indicate that this signal does not
  580.                exist in the network description.
  581.  
  582.             2) The simulation results.  In this simulation, the
  583.                circuit appears to be operating properly.
  584.  
  585.             3) The message:
  586.  
  587.                 2 Spike messages suppressed.
  588.  
  589.                at the end of the simulation.  This indicates that
  590.                spikes occurred during simulation, but we did not
  591.                request that they be reported.
  592.  
  593.         h) Restore Tnum=0
  594.            Xpropagate Spike:
  595.  
  596.            To check to see if the spike could cause problems with this
  597.            circuit, we will re-simulate with the spike propagate turned
  598.            back on.  The "Restore Tnum=0" command directs SIMIC to
  599.            restart the simulation at its uninitialized state.  The
  600.            "Xpropagate Spike:" command counteracts the previously
  601.            issued "No Xpropagate Spike:" command.
  602.  
  603.         i) Simulate
  604.  
  605.            Initiate re-simulation of the circuit.  Notice that q1 went
  606.            to X at test #7, when the counter should go from count 3 to
  607.            4.
  608.  
  609.         j) Restore Tnum=0
  610.            Break Memlatch:
  611.  
  612.            Set up for another round of simulation.  In this round,
  613.            we set a breakpoint whenever an X is latched into a
  614.            memory element (The T flip-flops in this circuit).
  615.  
  616.         k) Simulate
  617.  
  618.            Initiate simulation again.  SIMIC stops and issues a
  619.            breakpoint message, that the flip-flop latched in an
  620.            X when the NS input (not-set) went X:
  621.  
  622.         3 B     7> MEMLATCH CONDITION (NS AT 'X')[TNCF]: Q1
  623.  
  624.         l) Restore Tnum=*
  625.            Trace List: Expand:
  626.  
  627.            Instructs SIMIC to roll back to the start of this test
  628.            (previously stable point) with the Restore command.
  629.            Also, turn on activity tracing on all signals "Trace List:".
  630.            The "Expand:" option instructs SIMIC to include causality
  631.            information with the trace.
  632.  
  633.         m) Simulate
  634.  
  635.            Initiate simulation.  Notice the event trace, "E", messages
  636.            followed by causality, "C" information.
  637.  
  638.            Scanning the Trace information, we see that the master rank
  639.            of Q1 (Q1.1) went unknown, caused by SKIP_2 going unknown.
  640.            SKIP_2 went unknown because NQ1_Q2 went unknown, triggered
  641.            by NQ2 and Q1 changing too close for NQ1_Q1 to adequately
  642.            respond.
  643.  
  644.            We have quickly and easily identified the problem.  Notice
  645.            we are frozen at the breakpoint again.  We can replay this
  646.            small piece of the simulation as many times as necessary
  647.            until the problem is isolated.
  648.  
  649.            SIMIC has a large repertoire of interactive debugging tools.
  650.            Here are some you may want to try:
  651.  
  652.            Display value of signal Q1:
  653.             Look List=Q1
  654.  
  655.            Display value of signal CL4 and its input drivers:
  656.             Look Input: List=cl4
  657.  
  658.            Display any signals in an unknown state:
  659.             Look X:
  660.  
  661.            Display delays of all signals:
  662.             ?Delay List:
  663.  
  664.            Here are some other commands that are useful when
  665.            troubleshooting real designs:
  666.  
  667.            Display charge storage value for signal A:
  668.             ?Decay List=a
  669.  
  670.            Display load values for signals B and C:
  671.             ?Loading List=b,c
  672.  
  673.            Checkpoint the simulation every 100 stable points:
  674.             Save Pstep=100
  675.  
  676.            Stop simulation if signal D goes unknown:
  677.             Break X=d
  678.  
  679.            Warn if any signal spikes.
  680.             Warn Spike:
  681.  
  682.            There are many more options that make troubleshooting
  683.            large circuit easy in SIMIC.
  684.  
  685.         n) Quit
  686.  
  687.            Leave SIMIC session.
  688.  
  689.     Testcase #9 - Fault simulation
  690.  
  691.     In this demonstration we present some of Simic unique capabilities
  692.     in fault simulation.  The circuit provided has a number of
  693.     undetectable faults that are automatically removed prior to
  694.     simulation.  These are listed in the report file, fcount.flt,
  695.     during this demonstration.  Simic has the ability to track the
  696.     effects of potential detections, and properly classify potential
  697.     detections that are hard detections in the actual cicuit.
  698.  
  699.     Run Command Descriptions:
  700.  
  701.         a) Define File=fcount
  702.  
  703.             Specifies the default file name
  704.  
  705.         b) Get Type=Fcount
  706.  
  707.             Compiles the circuit, Fcount, found in the file,
  708.             fcount.net.
  709.  
  710.         c) Define Pin.2 = do 3 (10 11) do 6 (00 01) do 3 (10 11)
  711.  
  712.             Defines the input pattern sequence to apply to the
  713.             first (Clear) and second (Clock) inputs.
  714.  
  715.         d) Apply Pattern=Pin
  716.  
  717.             Attaches the pattern, Pin, defined previously, to
  718.             the primary inputs (Clear and Clock)
  719.  
  720.         e) Fault List: Report=Suppressed,Undetected,ByFault,ByTest
  721.  
  722.             Specifies that fault simulation will be performed
  723.             for all faults (List:) and that we want a report
  724.             of all suppressed and undetected faults.
  725.             In addition, we want to see the detected faults
  726.             listed in Alphanumeric sequence (ByFault) and
  727.             grouped by the test first detected (ByTest).
  728.  
  729.         f) Simulate
  730.  
  731.             Perform simulation.
  732.  
  733.         g) Quit
  734.  
  735.             Leave Simic.
  736.